home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / arexx / zedrexx.lha / ZedREXX / REXX / zAddress.zrx < prev    next >
Text File  |  1994-08-18  |  7KB  |  233 lines

  1. /* $VER: zaddress.zrx 1.0 (11.14.93)
  2.  * Extremely simple & primitive database access.
  3.  * Copyright (c) 1993-1994 Reality Check, Inc.
  4.  * Written by David N. Junod
  5.  *
  6.  */
  7.  
  8. OPTIONS RESULTS
  9. SIGNAL ON HALT
  10.  
  11. /* For Demo Purposes... */
  12. Info("S:",info.)
  13. IF info.DiskState="WRITE_PROTECTED"    THEN PersistVol="ENV"
  14.                     ELSE PersistVol="S"
  15.  
  16.     /* Application Data */
  17.     'zInterface ZAddress PersistFile='||PersistVol||':zAddress.zdb'
  18.     'zImage Magnify Width=11 Height=9 Depth=1 Data="3E006300C180C180C18063003EC000E00060"'
  19.     'zImage PhoneG Width=10 Height=9 Depth=1   Data="7F80E1C0C0C0D2C03F007F80FFC0FFC0FFC0"'
  20.         'zWindow Main Label "Addresses" Open Centered Vertical CloseEvent ChildMaxWidth Alignment Left'
  21.             'zMenu Project'
  22.         'zObject Button Iconify Label "&Iconify" Cause "zDoMethod ZAddress Deactivate"'
  23.         'zObject Line'
  24.                 'zObject Button Quit Label "&Quit" SelectEvent'
  25.             'zEndMenu'
  26.  
  27.       'zGroup Horizontal ChildMaxHeight'
  28.         'zObject Listview Names Label "N&ames" PlaceLabel Above NumColumns 20 Persist ItemsPersist Order Ascend ChangeEvent'
  29.             'zObject Line'
  30.             'zGroup Vertical Alignment Baseline'
  31.                 'zObject TextEntry Name Label "Na&me:" MaxChars 64 NumColumns 32'
  32.                 'zObject TextEntry Address Label "Add&ress:" MaxChars 64 NumColumns 32'
  33.                 'zObject TextEntry City Label "C&ity:" MaxChars 64 NumColumns 32'
  34.                 'zObject TextEntry State Label "S&tate:" MaxChars 2 NumColumns 3'
  35.                 'zObject TextEntry Zip Label "&Zip:" MaxChars 10'
  36.                 'zObject TextEntry Home Label "&Phone:" MaxChars 20'
  37.         'zObject Line'
  38.         'zGroup Horizontal ChildMaxHeight NoMargX'
  39.             'zObject TextEntry Company Label "Company:" MaxChars 64 NumColumns 32'
  40.             'zObject ButtonG CompanyS Glyph=Magnify UpEvent'
  41.         'zEndGroup'
  42.                 'zObject TextEntry Work Label "P&hone:" MaxChars 20'
  43.         'zObject TextEntry Internet Label "Internet:" MaxChars 64 NumColumns 32'
  44.         'zObject TextEntry Bix Label "Bix:" MaxChars 64 NumColumns 32'
  45.             'zEndGroup'
  46.             'zObject Line'
  47.             'zGroup Vertical ChildMaxWidth Justification Top'
  48.         'zObject Button New Label "&New" SelectEvent'
  49.                 'zObject Button Save Label "&Save" SelectEvent'
  50.         'zObject Button Delete Label "&Delete" SelectEvent'
  51.         'zObject Line'
  52.         'zObject Button GetComp Label "&Company" SelectEvent'
  53.         'zObject Button Previous Label "&Previous" SelectEvent'
  54.             'zEndGroup'
  55.       'zEndGroup'
  56.       'zObject Line'
  57.       'zObject TextDisplay Status NumColumns 80'
  58.         'zEndWindow'
  59.  
  60.         'zWindow NameWin Label="Name List" Vertical ChildMaxWidth Alignment=Left NoMargX NoMargY Blocking'
  61.         'zObject Listview NameList NumLines=10 Order=Ascend ChangeEvent'
  62.     'zEndWindow'
  63.  
  64.     'zEndInterface'
  65.  
  66.     CALL Initialize
  67.  
  68.     'zSetAttr Status Value "Select NEW to start entering an address"'
  69.  
  70.     /* Enter the event loop */
  71.     DO FOREVER
  72.  
  73.         /* Wait for something to happen */
  74.         'zWaitForEvent stem.'
  75.  
  76.         /* Do something with the event */
  77.         INTERPRET "zRC="RESULT"()"
  78.     END
  79.  
  80. Halt:
  81. Quit_Select:
  82. ZAddress_Quit:
  83. Main_Close:
  84. Cancel_Select:
  85.     CALL Shutdown
  86.     EXIT
  87.  
  88. Initialize:
  89.     /* Set the field names */
  90.     fields.fields="name|company|address|city|state|zip|work|home|internet|bix"
  91.  
  92.     /* Turn everything on */
  93.     'zDoMethod ZAddress Activate'
  94.     RETURN
  95.  
  96. Shutdown:
  97.     'zDoMethod Main Save'
  98.     RETURN
  99.  
  100. /* New button pressed */
  101. New_Select:
  102.     fields.name=""
  103.     fields.company=""
  104.     fields.address=""
  105.     fields.city=""
  106.     fields.state=""
  107.     fields.zip=""
  108.     fields.work=""
  109.     fields.home=""
  110.     fields.internet=""
  111.     fields.bix=""
  112.     'zSetAttr Main Fields fields.'
  113.     'zDoMethod Name Activate'
  114.     'zSetAttr Status Value "Select SAVE when done entering an address"'
  115.     RETURN 0
  116.  
  117. /* Save button pressed */
  118. Save_Select:
  119.     /* Show them that something is going on */
  120.     'zDoMethod ZAddress Lock'
  121.  
  122.     /* Get the fields from the window */
  123.     'zGetAttr Main Fields fields.'
  124.  
  125.     /* See if the record already exists */
  126.     'zPersist Get "'fields.name'"'
  127.     IF RESULT="RESULT" THEN DO
  128.     /* Didn't already exist, so add it to our index */
  129.     'zDoMethod Names Add' fields.name
  130.     'zSetAttr Names Value' fields.name
  131.     END
  132.  
  133.     /* Build the record */
  134.     record=fields.name
  135.     record=record||'|'||fields.company
  136.     record=record||'|'||fields.address
  137.     record=record||'|'||fields.city
  138.     record=record||'|'||fields.state
  139.     record=record||'|'||fields.zip
  140.     record=record||'|'||fields.work
  141.     record=record||'|'||fields.home
  142.     record=record||'|'||fields.internet
  143.     record=record||'|'||fields.bix
  144.  
  145.     /* Save the record */
  146.     'zPersist Set "'fields.name'"' record
  147.  
  148.     /* Unlock the UI */
  149.     'zDoMethod ZAddress Unlock'
  150.     'zSetAttr Status Value "Select NEW to start entering an address"'
  151.     RETURN 0
  152.  
  153. /* Delete button pressed */
  154. Delete_Select:
  155.     /* Show them that something is going on */
  156.     'zDoMethod ZAddress Lock'
  157.  
  158.     'zGetAttr Main Fields fields.'
  159.     record=""
  160.     'zPersist Set "'fields.name'"' record
  161.     'zDoMethod Names Remove' fields.name
  162.  
  163.     /* Unlock the UI */
  164.     'zDoMethod ZAddress Unlock'
  165.     RETURN 0
  166.  
  167. /* They want to see the company information */
  168. GetComp_Select:
  169.     'zGetAttr Company Value'
  170.     'zSetAttr Names Value' RESULT
  171.     RETURN 0
  172.  
  173. /* They want to go back to the previous name */
  174. Previous_Select:
  175.     'zSetAttr Names Value' old.name
  176.     RETURN 0
  177.  
  178. /* ListView changed */
  179. Names_Change:
  180.     /* Show them that something is going on */
  181.     'zDoMethod ZAddress Lock'
  182.  
  183.     /* Get the current name */
  184.     'zGetAttr Names Value'
  185.     IF RESULT~=fields.name THEN DO
  186.     /* Save the previous name */
  187.     old.name=fields.name
  188.  
  189.     /* Now show the name they selected */
  190.     fields.name=RESULT
  191.     IF LENGTH(fields.name)>0 THEN CALL UpdateRecord
  192.     IF LENGTH(fields.name)=0 THEN CALL New_Select
  193.     END
  194.  
  195.     /* Unlock the UI */
  196.     'zDoMethod ZAddress Unlock'
  197.     RETURN 0
  198.  
  199. UpdateRecord:
  200.     'zPersist Get "'fields.name'"'
  201.     record=RESULT
  202.     PARSE VAR record fields.name'|'fields.company'|'fields.address'|'fields.city'|'fields.state'|'fields.zip'|'fields.work'|'fields.home'|'fields.internet'|'fields.bix
  203.     fields.names=fields.name
  204.     'zSetAttr Main Fields fields.'
  205.     RETURN
  206.  
  207. CompanyS_Change:
  208.     'zGetAttr Names ItemStem Items.'
  209.     'zSetAttr NameList ItemStem Items.'
  210.     'zDoMethod NameList Add ""'
  211.     'zGetAttr Company Value'
  212.     IF RESULT~="" THEN 'zSetAttr NameList Value' RESULT
  213.     'zDoMethod NameWin Open'
  214.     Return 0
  215.  
  216. NameList_Change:
  217.     'zSetAttr Company Value' stem.Value
  218.     Return 0
  219.  
  220. HomeD_Change:
  221.     'zGetAttr Home Value'
  222.     number="'ATDT "||RESULT||"*r'"
  223.     cmd='address VLT "send 'number'"'
  224.     INTERPRET cmd
  225.     Return 0
  226.  
  227. WorkD_Change:
  228.     'zGetAttr Work Value'
  229.     number="'ATDT "||RESULT||"*r'"
  230.     cmd='address VLT "send 'number'"'
  231.     INTERPRET cmd
  232.     Return 0
  233.